You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HBase compatible guava dependency is bit messed up i.e. timelineservice-hbase modules are still being built with Hadoop's guava version (defined in hadoop-project) and this creates issues with HBaseStorageMonitor reading records from hbase cluster:
java.lang.RuntimeException: org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.NoSuchMethodError: com.google.common.net.HostAndPort.getHostText()Ljava/lang/String;
at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:95)
at org.apache.hadoop.yarn.server.timelineservice.storage.reader.TimelineEntityReader.readEntities(TimelineEntityReader.java:283)
at org.apache.hadoop.yarn.server.timelineservice.storage.HBaseStorageMonitor.healthCheck(HBaseStorageMonitor.java:77)
at org.apache.hadoop.yarn.server.timelineservice.storage.TimelineStorageMonitor$MonitorThread.run(TimelineStorageMonitor.java:89)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.NoSuchMethodError: com.google.common.net.HostAndPort.getHostText()Ljava/lang/String;
at org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:260)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:233)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:394)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:368)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:143)
at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:80)
... 3 more
Caused by: java.lang.NoSuchMethodError: com.google.common.net.HostAndPort.getHostText()Ljava/lang/String;
at org.apache.hadoop.hbase.net.Address.getHostName(Address.java:72)
at org.apache.hadoop.hbase.net.Address.toSocketAddress(Address.java:57)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:576)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:37250)
at org.apache.hadoop.hbase.client.ScannerCallable.openScanner(ScannerCallable.java:405)
at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:274)
at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:62)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:231)
TimelineReaderServer logs after fixing the issue:
How was this patch tested?
Tested locally
Verified guava jar present in timelineservice/lib
Run all hbase UTs
Checked timelinereader logs to confirm the storage monitor is not failing
For code changes:
Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+0 🆗
mvndep
13m 20s
Maven dependency ordering for branch
+1 💚
mvninstall
21m 34s
trunk passed
+1 💚
compile
9m 41s
trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚
compile
8m 24s
trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚
mvnsite
8m 1s
trunk passed
+1 💚
javadoc
4m 58s
trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
@minni31 have you also done changes in bin/yarn as per this PR?
After porting the changes, building the tarball (mvn clean package -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true) adds guava-12.0 jar under share/hadoop/yarn/timelineservice/lib.
And as per bin/yarn change, starting timeline reader server will always add timelineservice/lib/* contents first, overriding hadoop's own guava-27.0 jar version in the classpath. Can you please confirm if this works for you?
With the changes on this PR, it works for me.
From the timeline reader logs, can you provide classpath value? It must be at the beginning (3rd or 4th line from the beginning). Does the classpath have guava 12.0 jar? (guava 12.0 jar should be present before guava 27.0 jar)
For me, timeline reader works well with this patch. Without this patch, the Exception is thrown as mentioned on the PR description.
Let's try to understand what might be missing in your test. Which platform are you using and which command?
I tried on Mac and Linux both with command bin/yarn --daemon start timelinereader
I had an offline sync with @minni31
The recent commit on this PR helps for TimelineReaderServer on Windows platform. However, there is an additional issue related to RM and NM (YARN-11047). I will create PR for the issue once this is merged since both changes are inter-related.
Thanks @minni31
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+0 🆗
mvndep
13m 5s
Maven dependency ordering for branch
+1 💚
mvninstall
21m 39s
trunk passed
+1 💚
compile
9m 42s
trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚
compile
8m 25s
trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚
mvnsite
8m 2s
trunk passed
+1 💚
javadoc
5m 0s
trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+0 🆗
mvndep
12m 53s
Maven dependency ordering for branch
+1 💚
mvninstall
21m 43s
trunk passed
+1 💚
compile
9m 39s
trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚
compile
8m 21s
trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚
mvnsite
8m 0s
trunk passed
+1 💚
javadoc
4m 58s
trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of PR
HBase compatible guava dependency is bit messed up i.e. timelineservice-hbase modules are still being built with Hadoop's guava version (defined in hadoop-project) and this creates issues with HBaseStorageMonitor reading records from hbase cluster:
TimelineReaderServer logs after fixing the issue:
How was this patch tested?
For code changes: